<?php

/**
 * @author juanma
 * @copyright 2008
 */

class Sgit_Mail{
    public $smtp='172.25.0.123';

    public function __construct(){
        $this->m_usuario=new Application_Model_Usuario();
        $this->m_dc=new Application_Model_Datacenter();

        $tr = new Zend_Mail_Transport_Smtp($this->smtp);
        Zend_Mail::setDefaultTransport($tr);
        
        $this->mail = new Zend_Mail('UTF-8');
    }


    public function sendMsg($entrada){

        
        
        $from=$this->from($entrada['de']);
        $this->destinatarios($entrada['destinatarios']);
        $this->destinatariosCC($entrada['destinatariosCC']);
        
        $this->mail->addBcc('juamarca@gmail.com', 'juanma');
        
        $this->mail->setSubject($entrada['asunto']);
        $this->body($entrada);


        $ruta=  realpath(dirname(__FILE__).'/../../logs');
        $writer = new Zend_Log_Writer_Stream($ruta.DS.date('Ym').'_msg.txt');
        $logger = new Zend_Log($writer);
       



        $recipients=$this->mail->getRecipients();



        try {
            $result= $this->mail->send();

        } catch (Exception $e) {
           
           $logger->crit( $e->getCode().' : '.utf8_encode($e->getMessage()) ."\t\t".$entrada['asunto'].' From:'.$from.' Recipients:'.implode(',',$recipients));

            
           exit('No se ha podido notificar por correo.<br>'.utf8_encode($e->getMessage()).'<br>El comentario si se ha registrado en el proyecto.');
        }
        
    
        $logger->info( $entrada['asunto'].' From:'.$from.' Recipients:'.implode(',',$recipients));  
      

    }
    
    public function addTo($email){
       $this->mail->addTo($email);
    }
    public function addCc($email){
       $this->mail->addCc($email);
    }
    
    public function body($entrada){
       $html=$this->template($entrada);
       $this->mail->setBodyHtml($html);
    }
    
    
         
    public function from($de){
        if(!$de) $de=$_SESSION['id_usuario'];
        
        $from=($de > 0) ? 'Viriathus: '.$this->m_usuario->cacheAssoc($de,'nombre') : 'SGIT';
        $this->mail->setFrom('sgit@telvent.com',$from);
        return $from;
    }
    
    
    
    public function destinatarios($usuarios)
    {
       
        if(!empty($usuarios)){
            foreach((array)$usuarios as $id)
            {
                 $usuario=$this->m_usuario->cacheAssoc($id);
                 
                 if (Zend_Validate::is($usuario['mail'], 'EmailAddress')) {
                    $this->mail->addTo($usuario['mail'], $usuario['nombre']);
                 }
            }
        }
    }
    
    
    public function destinatariosCC($usuarios)
    {
        if(!empty($usuarios)){
            foreach((array)$usuarios as $id)
            {
                 $usuario=$this->m_usuario->cacheAssoc($id);
                 if (Zend_Validate::is($usuario['mail'], 'EmailAddress')) {
                    $this->mail->addCc($usuario['mail'], $usuario['nombre']);
                 }
            }
        }
    }
    
    
    function template($entrada)
    {
        
        $body=nl2br($entrada['body']);
        $notas=nl2br($entrada['notas2']);
        $de=$entrada['de'];
        $id_zona=$entrada['id_zona'];
        $ira=$entrada['ira'];
        $files=$entrada['files'];
        $path=$entrada['path'];
        
        $adjuntos=$entrada['adjuntos'];
        
        
        
        if(!$de) $de=$_SESSION['id_usuario'];
        $from=($de > 0) ? $this->m_usuario->cacheAssoc($de,'nombre') : 'Viriathus';
        if($id_zona) $zona=" <small style='float:right'>  Datacenter: "   . $this->m_dc->cacheAssoc($id_zona,'nombre')."</small>";  

        $de='<h4>'.$from.$zona.'</h4><div style="clear: both;"></div><hr />';
        


        if($ira){
            $ira='<div style="float:right;font-size:0.8em;font-family:helvetica;font-weight:bolder;color:#555555;padding:10px;background-color:#FDD29C;border: 1px solid #FFF; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px;"><a href="'.$ira.'">Ver en Viriathus</a></div>';                     
        }
        
        
        

        if($adjuntos)
        {
             $server=Zend_Controller_Front::getInstance()->getRequest()->getServer('SERVER_NAME');
            
            $archivos_adjuntos='<fieldset style="text-align:left;margin:10px"><legend>Archivos Adjuntos:</legend>';
            
            foreach($adjuntos as $file){
                 $archivos_adjuntos.="<a href='http://$server{$file['public_path']}'>{$file['basename']}</a><br>";
            }
            
            $archivos_adjuntos.='</fieldset>';
            
        }

        
        if($files){
            $archivos_adjuntos='<fieldset style="text-align:left;margin:10px"><legend>Archivos Adjuntos:</legend>';
                $archivos=unserialize($files);
                if(is_array($archivos)){
                    foreach($archivos as $f){
                        $archivos_adjunto='http://'.$_SERVER['SERVER_NAME'].$path.rawurlencode($f);
                        $nombrearchivo=trim(strstr ($f, '-'), '-');
                        $archivos_adjuntos.='<a href="'.$archivos_adjunto.'">'.$nombrearchivo.'</a><br>';
                    }
                }else{
                    $archivos_adjunto='http://'.$_SERVER['SERVER_NAME'].$path.rawurlencode($files);
                    $nombrearchivo=trim(strstr ($files, '-'), '-');
                    $archivos_adjuntos.='<a href="'.$archivos_adjunto.'">'.$nombrearchivo.'</a><br>';
                }
            $archivos_adjuntos.='</fieldset>';
        }
        
        

        

        
        $template = <<<EOT
        <html>
        <head>
           <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
           <title>VIRIATHUS</title>
        </head>
        <body style="background-color: #eeeeee;">
        
        <table width="100%" border="0" cellspacing="0" cellpadding="0"  style="background-color: #eeeeee;">
           <tr>
              <td align="center">
                 
                 <table width="100%" border="0" cellspacing="0" cellpadding="0" style="background-color: #ffffff;">
                    <tr>
                       <td align="right" style="margin:0px;padding: 0px;background-color: #4FA600;height:58px;vertical-align: middle;" height="58px">
                         <span style="margin-right:15px;color:#ffffff;font-size: 2.6em; font-family: 'HandelGothic BT'; letter-spacing: 1.5pt; word-spacing: 3pt;text-align:right">VIRIATHUS Data Centers Smart Suite</span>
                       </td>
                    </tr>
                    <tr>
                       <td valign="top" style="padding: 0 20px 20px 20px; background-color: #ffffff;">
                          <table width="100%" border="0" cellspacing="0" cellpadding="0">
                             <tr>
                                <td valign="top" class="mainbar" align="left" style="background-color: #ffffff;">
                                      $de
                                      <div style="padding:20px;">
                                      $body
                                      </div>
                                      $ira
                                      <div style="clear: both;"></div>
                                      <hr />
                                      <div style="margin-left:20px;margin-right:10px;font-style:italic;font-size:8pt;background-color:#e0e0e0;">
                                      $archivos_adjuntos $notas
                                      </div>
                                      <br />
                                </td>
                             </tr>
                          </table>
                       </td>
                    </tr>
                    <tr>
                       <td valign="middle" align="left" style="padding: 0 30px 0 30px;background-color: #CCCCCC;vertical-align: middle;" height="25">
                          <p style="font-family: Arial;font-size: 0.7em;font-weight: normal;color: #000000;line-height: 16px;margin: 0;padding: 0;">Por favor, no responda a este mensaje a través de un correo ya que ha sido enviado desde una dirección que no admite correo de entrada.</p>
                   </td>
                   </tr>
                    <tr>
                       <td valign="middle" align="left" style="padding: 0 20px 0 20px;background-color: #333333;height: 61px;vertical-align: middle;" height="61" height="60px">
                          <p style="font-family: Arial;font-size: 11px;font-weight: normal;color: #ffffff;line-height: 16px;margin: 0;padding: 0;">Viriathus es una aplicación de la División Datacenter de Telvent Global Services.<br />
                          Has recibido este correo a traves de Viriathus, debido a que estas dado de alta en esta aplicación.<br />
                          Si no estas interesado,elimina tu dirección de correo de la aplicación Viriathus.</p>
                   </td>
                    </tr>
        
                 </table>
                 
              </td>
           </tr>
        </table>
        </body>
        </html>
EOT;


return $template;
    }
    
}

	  
